home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / comm / cdtest.zip / CDTEST.ASM next >
Assembly Source File  |  1986-02-22  |  2KB  |  47 lines

  1. CDTEST    SEGMENT BYTE PUBLIC 'CODE'
  2. page      55,132
  3.           ASSUME  CS:CDTEST,DS:CDTEST,ES:CDTEST,SS:CDTEST
  4.           ORG     100H        ; ASSUME & ORG set-up for COM program
  5. ;
  6. CD        EQU     80H         ; mask for Carrier Detect
  7. TIMING    EQU     60000       ; time limit for loop
  8. LOOP_CNT  EQU     60          ; number of times to loop
  9. ;
  10. P_CODE:   mov     cx,LOOP_CNT ; set-up loop counter
  11. ;
  12. TEST_CD:  mov     ah,3        ; set-up to request status of comm port
  13.           mov     dx,0        ; 0 = COM1 (use 1 for COM2)
  14.           int     14h         ; call RS232_IO routine
  15. ;
  16.           and     al,CD       ; check for Carrier Detect bit on
  17.           jnz     CD_ON       ; CD detected, jump to positive exit
  18. ;
  19.           dec     cx          ; lower timer
  20.           jcxz    TIME_OUT    ; time ran out, jump to negative exit
  21. ;
  22.           call    TIMER       ; go to timing loop
  23.           jmp     TEST_CD     ; check again
  24. ;
  25. TIMER:    push    cx          ; save loop counter
  26.           mov     cx,TIMING   ; set-up timing for loop
  27. LOOPING:  dec     cx          ; count down time
  28.           cmp     cx,0        ; has time ran out ?
  29.           jne     LOOPING     ; time has not ran out
  30.           pop     cx          ; time ran out, restore loop counter
  31.           ret                 ; & go back to main loop
  32. ;
  33. TIME_OUT: mov     al,01       ; set ERRORLEVEL to 1
  34.           mov     ah,4ch      ; set up to exit
  35.           int     21h         ; exit negative
  36. ;
  37. CD_ON:    mov     al,00       ; set ERRORLEVEL to 0
  38.           mov     ah,4ch      ; set up to exit
  39.           int     21h         ; exit positive
  40. ;
  41. CDTEST    ENDS
  42.           END     P_CODE
  43.      ah,4ch      ; set up to exit
  44.           int     21h         ; exit positive
  45. ;
  46. CDTEST    ENDS
  47.